// 导入axios实例
import { get, post, put, del } from '../utils/request';

// 任务管理相关API服务
export const taskService = {
  // 获取任务列表
  getTasks: (params) => {
    return get('/api/new-tasks', params);
  },
  
  // 创建任务类型
  createTaskType: (taskTypeData) => {
    return post('/api/task-types', taskTypeData);
  },
  
  // 根据用户ID获取任务列表
  getUserTasks: (userId, params = {}) => {
    return get(`/api/task-approval-status/approver/${userId}/processing-with-rawdata`, params);
  },
  
  // 获取单个任务详情
  getTaskById: (id) => {
    return get(`/api/new-tasks/${id}`);
  },
  
  // 根据业务唯一ID获取任务
  getTaskByBizUniqueId: (bizUniqueId) => {
    return get(`/api/new-tasks/biz/${bizUniqueId}`);
  },
  
  // 创建新任务
  createTask: (taskData) => {
    return post('/api/new-tasks', taskData);
  },
  
  // 更新任务信息
  updateTask: (id, taskData) => {
    return put(`/api/new-tasks/${id}`, taskData);
  },
  
  // 删除任务
  deleteTask: (id) => {
    return del(`/api/new-tasks/${id}`);
  },
  
  // 更新任务分配状态
  updateTaskAssignedStatus: (id, statusData) => {
    return put(`/api/new-tasks/${id}/assigned-status`, statusData);
  },
  
  // 从数据源同步任务
  syncTasksFromDataSource: (dataSourceId, syncData = {}) => {
    return post(`/api/new-tasks/sync-from-datasource/${dataSourceId}`, syncData);
  },

  // 获取任务统计信息
  getTaskStats: () => {
    return get('/api/new-tasks/overview/stats');
  },

  // 获取单个数据源统计信息
  getDataSourceStats: (dataSourceId) => {
    return get(`/api/new-tasks/overview/stats/${dataSourceId}`);
  },

  // 获取数据源搜索配置
  getSearchConfig: (dataSourceId) => {
    return get(`/api/new-tasks/search-config/${dataSourceId}`);
  },

  // 获取数据源任务详情
  getTaskDetails: (dataSourceId, page = 0, size = 20, isAssigned = null) => {
    const params = { page, size };
    if (isAssigned !== null) {
      params.isAssigned = isAssigned;
    }
    return get(`/api/new-tasks/overview/details/${dataSourceId}`, params);
  },

  // 批量分配任务流程
  batchAssignTaskFlow: (data) => {
    return post('/api/new-task-flows/batch-assign', data);
  },

  // 根据数据源批量分发并分配任务
  batchDistributeAndAssignTaskByDataSource: (dataSourceId, data) => {
    return post(`/api/task-distribution/batch-distribute-and-assign/datasource/${dataSourceId}`, data);
  },
  
  // 获取任务审批状态
  getTaskApprovalStatus: (taskId) => {
    return get(`/api/task-approval-status/task/${taskId}`);
  },
  
  // 获取任务类型列表
  getTaskTypes: () => {
    return get('/api/task-types');
  },
  
  // 获取ECOS版本列表
  getEcosVersions: () => {
    return get('/api/tasks/statistics/version');
  },
  
  // 获取部门列表
  getDepartments: (ecosVersion) => {
    return get('/api/tasks/statistics/dep', { version: ecosVersion });
  },
  
  // 获取应用名称列表
  getApplications: (version, department) => {
    return get('/api/tasks/statistics/app', {
      version,
      department
    });
  }
};

export default taskService;